

#include <cassert>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;

struct Buhmann {
  double operator()(double x) const {
    return 112 / 45.0 * pow(x, 4.5) + 16 / 3.0 * pow(x, 3.5) - 7 * pow(x, 4) -
           14 / 15.0 * x * x + 1.0 / 9;
  }
};

int main() {
  const int size = 1000;
  vector<double> x(size), val(size);
  ofstream ofile{"buhmann.plt"};
  ofile << setprecision(15);
  Buhmann f;
  for (int i = 0; i < size; ++i) {
    x[i] = 1.0 / size * i;
    val[i] = f(x[i]);
    ofile << x[i] << "  " << val[i] << "\n";
  }
  ofile.close();
  return 0;
}